Bài học Scratch cho học sinh THCS

Tạo và sử dụng khối tùy chỉnh (My Blocks)

Học cách gom nhiều lệnh thành một khối riêng, tái sử dụng mã nguồn và xây dựng chương trình gọn gàng hơn trên Scratch.

Khối tùy chỉnh (My Blocks) là gì?

Trong Scratch, bạn đã quen với các nhóm khối có sẵn như Sự kiện, Di chuyển, Điều khiển… Nhóm My Blocks (Khối của tôi) cho phép bạn tự tạo khối lệnh mới theo ý mình — giống như viết một công thức nấu ăn riêng rồi gọi tên để dùng lại nhiều lần.

Nhóm My Blocks trong Scratch
Nhóm My Blocks (màu tím hồng) nằm ở bảng khối bên trái màn hình Scratch

Mỗi khối tùy chỉnh thực chất là một thủ tục (procedure): bạn định nghĩa một chuỗi lệnh dưới khối định nghĩa (define), sau đó gọi khối đó ở bất kỳ đâu trong chương trình. Khi khối được chạy, Scratch sẽ thực hiện toàn bộ lệnh bên trong định nghĩa — như thể bạn đã ghép sẵn các khối vào chỗ đó.

💡 Ghi nhớ

Khối tùy chỉnh thuộc về từng nhân vật. Mỗi nhân vật có bộ My Blocks riêng; nhân vật này không tự động dùng được khối do nhân vật khác tạo.

Vì sao nên dùng My Blocks?

Khi dự án càng lớn, số khối lệnh càng nhiều và dễ rối. My Blocks giúp bạn quản lý mã nguồn hiệu quả hơn:

Gọn gàng Gom nhiều khối thành một khối có tên dễ hiểu
Tái sử dụng Viết một lần, gọi nhiều lần ở nhiều chỗ
Dễ sửa Sửa trong phần định nghĩa → mọi chỗ gọi đều thay đổi
Dễ đọc Chương trình đọc như kịch bản: "nhảy", "bắn", "tính điểm"
Logo Scratch
My Blocks là bước tiến quan trọng giúp bạn lập trình theo cách chuyên nghiệp hơn trên Scratch
Không dùng My Blocks Cùng một đoạn mã lặp lại 5 lần ở 5 chỗ khác nhau. Muốn sửa phải tìm và sửa từng chỗ.
Có dùng My Blocks Viết đoạn mã một lần trong khối định nghĩa, gọi khối 5 lần. Chỉ cần sửa một chỗ.
📌 Ví dụ — Tình huống thực tế

Trong game, nhân vật cần "nhảy" khi nhấn phím, khi chạm nền và khi ăn đồ. Thay vì copy 10 khối di chuyển ba lần, bạn tạo khối nhảy và chỉ cần kéo một khối mỗi lần cần dùng.

Cách tạo khối tùy chỉnh

Quy trình tạo khối gồm hai phần: định nghĩa (khối làm gì) và sử dụng (gọi khối khi cần).

Bước 1 — Tạo khối mới

  1. Chọn nhân vật cần tạo khối.
  2. Nhấn vào nhóm My Blocks ở bảng khối bên trái.
  3. Nhấn nút "Tạo một khối" (Make a Block).
  4. Đặt tên khối — nên chọn tên mô tả hành động, ví dụ: xoay_tròn, bắn_đạn.
  5. Nhấn OK.
Hộp thoại đặt tên khối tùy chỉnh
Hộp thoại đặt tên khi nhấn "Tạo một khối"

Bước 2 — Viết phần định nghĩa

Sau khi nhấn OK, Scratch tạo khối mũ định nghĩa [tên khối] trong vùng lập trình. Bạn ghép các khối lệnh bên dưới khối định nghĩa — đó chính là nội dung khối sẽ thực hiện.

Khối định nghĩa và các lệnh bên dưới
Ghép các khối lệnh dưới khối "định nghĩa" để mô tả hành động của khối tùy chỉnh
định nghĩa xoay_tròn
  xoay (15) độ
  đợi (0.1) giây
  xoay (-15) độ

Bước 3 — Gọi khối trong chương trình

Khối mới xuất hiện trong nhóm My Blocks. Kéo khối đó vào chương trình chính — ví dụ dưới khối khi nhấn phím Space — để chạy toàn bộ lệnh đã định nghĩa.

Khối tùy chỉnh trong bảng khối
Khối tùy chỉnh sau khi tạo xong, sẵn sàng kéo vào chương trình
khi nhấn phím [Space]
  xoay_tròn
💡 Ghi nhớ

Khối định nghĩa không tự chạy. Nó chỉ mô tả "công thức". Chương trình chỉ thực thi khi bạn gọi khối tùy chỉnh ở nơi khác (sự kiện, vòng lặp, điều kiện…).

📌 Ví dụ — Khối "chào_hỏi"

Định nghĩa: nói "Xin chào!" trong 1 giây → đợi 0.5 giây → nói "Chúc bạn vui!" trong 1 giây

Sử dụng: khi nhấn cờ xanh → chào_hỏi

Một khối gọn thay cho bốn khối lệnh lặp lại mỗi lần cần chào.

Khối có tham số đầu vào

Đôi khi bạn muốn khối linh hoạt hơn — ví dụ nhảy cao bao nhiêu bước thay vì cố định. Khi tạo khối, nhấn "Thêm đầu vào" (Add an input) để thêm tham số:

Số (Number) Bước nhảy, góc xoay, thời gian…
Chữ (Text) Lời thoại, tên người chơi…
Đúng/Sai Bật/tắt hiệu ứng, kiểm tra trạng thái

Bạn cũng có thể thêm nhãn văn bản (Add a label) để khối đọc tự nhiên hơn, ví dụ: nhảy (bước) bước.

Nút Tạo một khối
Bắt đầu từ nút "Tạo một khối", sau đó thêm đầu vào trong hộp thoại
định nghĩa nhảy (bước)
  thay đổi y đi (bước)
  đợi (0.2) giây
  thay đổi y đi ((-1) * (bước))

Khi gọi khối, bạn điền giá trị vào ô trống — nhảy (50) hoặc nhảy (100) — cùng một khối nhưng hành vi khác nhau.

📌 Ví dụ — Khối "nói_chào (tên)"

Định nghĩa: nói (nối ("Xin chào, ") (tên)) trong 2 giây

Gọi: nói_chào ("Lan") → "Xin chào, Lan"

Gọi: nói_chào ("Hùng") → "Xin chào, Hùng"

💡 Mẹo đặt tên tham số

Đặt tên tham số ngắn, rõ nghĩa: bước, góc, tên. Tránh tên chung chung như x, a khi có nhiều tham số cùng lúc.

Khối trả về giá trị (Reporter)

Mặc định, khối tùy chỉnh là khối câu lệnh (thực hiện hành động). Scratch còn cho phép tạo khối báo cáo (reporter) — trả về một giá trị số hoặc chữ để dùng trong khối khác.

Khi tạo khối, tích chọn "Thêm phần mở rộng trả về giá trị" (Add extension reporter). Trong phần định nghĩa, dùng khối báo cáo ở cuối để trả kết quả.

định nghĩa tính_tổng (a) (b)
  báo cáo ((a) + (b))

Khối tính_tổng có thể ghép vào khối khác: đặt [kết_quả] thành tính_tổng (3) (7) → kết quả là 10.

Chạy không làm mới màn hình

Với khối có nhiều bước di chuyển hoặc vẽ, bạn có thể bật tùy chọn "Chạy không làm mới màn hình" (Run without screen refresh). Khi đó Scratch thực hiện toàn bộ lệnh rồi mới cập nhật hình ảnh — hữu ích khi vẽ hình phức tạp hoặc di chuyển tức thì mà không thấy từng bước trung gian.

📌 Ví dụ — Khối vẽ hình vuông

Khối vẽ_vuông (cạnh) lặp 4 lần: tiến (cạnh) → xoay 90 độ. Bật "chạy không làm mới màn hình" để hình vuông xuất hiện ngay, không nhìn thấy bút di chuyển từng cạnh.

Mẹo hay và lỗi thường gặp

Mẹo sử dụng hiệu quả

Lỗi thường gặp

💡 Ghi nhớ

My Blocks khác với phát tin (broadcast): phát tin gửi tín hiệu cho nhân vật khác nghe; My Blocks gom lệnh trong cùng một nhân vật và chạy ngay lập tức.

Tư duy lập trình có cấu trúc
My Blocks giúp bạn tư duy theo từng chức năng — nền tảng cho lập trình có cấu trúc

Dự án thực hành: Game nhảy đơn giản

Hãy tạo game nhỏ với ba khối tùy chỉnh để luyện tập:

  1. đặt_vị_trí_ban_đầu — đặt x, y về giữa sân khấu, đặt biến điểm thành 0.
  2. nhảy (cao) — thay đổi y đi (cao), đợi 0.15 giây, thay đổi y đi (-cao).
  3. ăn_sao — thay đổi điểm đi 10, phát âm thanh "pop", tạo hiệu ứng nhỏ (đổi kích thước rồi trả lại).
khi nhấn cờ xanh
  đặt_vị_trí_ban_đầu

khi nhấn phím [Space]
  nhảy (60)

khi nhân vật chạm [Sao]
  ăn_sao

Chương trình chính chỉ còn vài khối sự kiện gọn gàng; chi tiết nằm trong từng khối tùy chỉnh. Khi muốn nhảy cao hơn, chỉ cần đổi tham số nhảy (80) thay vì sửa nhiều khối di chuyển.

📌 Thử thách mở rộng
  • Thêm khối game_over — hiện thông báo, dừng âm thanh, ẩn nhân vật.
  • Tạo khối reporter tính_điểm_thưởng (sao) — sao vàng +20, sao bạc +10.
  • Dùng khối ăn_sao ở cả nhân vật chính và nhân vật phụ (mỗi nhân vật tạo khối riêng).
💡 Lời kết

My Blocks biến chương trình Scratch từ "dài và lặp lại" thành "ngắn và có tổ chức". Hãy mở Scratch, tạo một khối đơn giản ngay hôm nay — rồi từ từ thêm tham số và khối reporter khi bạn đã quen. Đây là kỹ năng nền tảng để sau này học các ngôn ngữ lập trình có hàm (function) như Python hay JavaScript.